package br.org.acessobrasil.portal.modelo;

import java.io.Serializable;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Transient;

@Entity
@Table(name = "sgctb_item_menu")
public class ItemMenu implements Serializable {
	private static final long serialVersionUID = -8068126775829528813L;
	@Id
	@GeneratedValue
	private Long nu_item_menu;
	@Column(length=255)
	private String no_titulo;
	@Column(length=255)
	private String de_ajuda;
	private Long nu_pagina;
	private Integer nu_nivel;
	private Long nu_menu;
	private Integer nu_ordem;
	@Column(length=255)
	private String no_link_externo;
	private boolean co_esconder;
	//private boolean nova_pagina;
	
	@OneToMany(cascade = CascadeType.REMOVE, fetch = FetchType.LAZY)
	@JoinColumn(name = "nu_item_menu_secao")
	private List<Pagina> listPagina;
	
	public ItemMenu() {
		this.co_esconder=false;
	}

	@Transient
	private String no_titulo_apresentacao;
	@Transient
	private Pagina pagina_associada;
	
	public ItemMenu(Long nu_item_menu, String no_titulo, String de_ajuda, Long nu_pagina, Integer nu_nivel, Long nu_menu, Integer nu_ordem, String no_link_externo, boolean co_esconder) {
		this.nu_item_menu = nu_item_menu;
		this.no_titulo = no_titulo;
		this.de_ajuda = de_ajuda;
		this.nu_pagina = nu_pagina;
		this.nu_nivel = nu_nivel;
		this.nu_menu = nu_menu;
		this.nu_ordem = nu_ordem;
		this.no_link_externo = no_link_externo;
		this.co_esconder=co_esconder;
	}

	public Long getNuItemMenu() {
		return nu_item_menu;
	}

	public void setNuItemMenu(Long nu_item_menu) {
		this.nu_item_menu = nu_item_menu;
	}

	public String getNoTitulo() {
		return no_titulo;
	}

	public void setNoTitulo(String no_titulo) {
		this.no_titulo = no_titulo;
	}

	public String getDeAjuda() {
		return de_ajuda;
	}

	public void setDeAjuda(String de_ajuda) {
		this.de_ajuda = de_ajuda;
	}

	public Long getNuPagina() {
		return nu_pagina;
	}

	public void setNuPagina(Long nu_pagina) {
		this.nu_pagina = nu_pagina;
	}

	public Integer getNuNivel() {
		return nu_nivel;
	}

	/**
	 * 
	 * @param nu_nivel comeca em 1
	 */
	public void setNuNivel(Integer nu_nivel) {
		this.nu_nivel = nu_nivel;
	}

	public Long getNuMenu() {
		return nu_menu;
	}

	public void setNuMenu(Long nu_menu) {
		this.nu_menu = nu_menu;
	}

	public Integer getNuOrdem() {
		return nu_ordem;
	}

	public void setNuOrdem(Integer nu_ordem) {
		this.nu_ordem = nu_ordem;
	}

	public String getNoLinkExterno() {
		return no_link_externo;
	}

	public void setNoLinkExterno(String no_link_externo) {
		this.no_link_externo = no_link_externo;
	}

	/**
	 * Paginas que fazem parte do "setor"
	 * @return
	 */
	public List<Pagina> getListPagina() {
		return listPagina;
	}

	public void setListPagina(List<Pagina> listPagina) {
		this.listPagina = listPagina;
	}

	public boolean isCoEsconder() {
		return co_esconder;
	}

	public void setCoEsconder(boolean co_esconder) {
		this.co_esconder = co_esconder;
	}

	public Pagina getPaginaAssociada() {
		return pagina_associada;
	}
	public void setPaginaAssociada(Pagina paginaAssociada) {
		pagina_associada = paginaAssociada;
	}
	public String getNoTituloApresentacao() {
		return no_titulo_apresentacao;
	}
	public void setNoTituloApresentacao(String noTituloApresentacao) {
		no_titulo_apresentacao = noTituloApresentacao;
	}
	
	/*public boolean isNova_pagina() {
		return nova_pagina;
	}

	public void setNova_pagina(boolean nova_pagina) {
		this.nova_pagina = nova_pagina;
	}*/
}
